package com.ihr360.insurance.service;

import com.ihr360.commons.model.type.BenefitCategory;
import com.ihr360.insurance.model.dto.benefits.MandatoryBenefitsType;
import com.ihr360.insurance.model.vo.BenefitTypeVo;
import com.ihr360.rest.service.SimpleRestService;

import java.util.Date;
import java.util.List;

public interface MandatoryBenefitsTypeService extends SimpleRestService<MandatoryBenefitsType, Long> {

    /**
     * 获取全部有效的福利类型
     *
     * @return
     */
    List<BenefitTypeVo> getEnabledTypes();

    /**
     * 根据指定日期,获取有效的福利类型
     *
     * @param yearMonthDate
     * @param category
     * @return
     */
    List<BenefitTypeVo> getCurrentEnabledTypes(Date yearMonthDate, BenefitCategory category);

    /**
     * 根据指定日期,获取有效的福利类型
     *
     * @param yearMonthDate
     * @return
     */
    List<BenefitTypeVo> getCurrentEnabledTypes(Date yearMonthDate);

    /**
     * 根据指定日期,获取指定范围内的目前有效的福利类型
     *
     * @param ids
     * @param yearMonthDate
     * @return
     */
    List<BenefitTypeVo> getCurrentEnabledTypesIn(List<Long> ids, Date yearMonthDate);

    /**
     * 名称是否已存在
     *
     * @param name
     * @return
     */
    boolean isTypeNameExisted(String name);

}